package Testdmo5;

import java.util.ArrayList;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:周次煜
 * Date: 2024-03-21
 * Time：18:25
 */


////// 进行类型检查的泛型类
//public class Generics <T>{
//
////    public T[] s=(T)new Object[10];
////    public  T[]s=new T[10];
//
//    // 这里需要 Object 父类来定义数组
//    public Object [] s=new Object[10];
//
//
//    // 放置该数组
//    // 无需强转
//    public void setS(T val,int pos) {
//        s[pos]=val;
//    }
//
//    // 返回值需要强转
//    public T getS(int pos) {
//        return (T) s[pos];
//    }
//
//
//    public static void main(String[] args) {
//        // 实例化对象时需要 指定类型
//        Generics<Double> d1=new Generics<Double>();
//
//        d1.setS(123.5,0);
//        d1.setS(87.4,1);
//
//        //        d1.setS("小说",2);
//        //        d1.setS(12,3);
//
//        System.out.println(d1.getS(1));
//        System.out.println(d1.getS(0));
//    }
//}
//
//
// 两数比较的泛型方法

class Test {
    public  < T extends Comparable<T>>T Comp(T[]array){
        T max=array[0];

        for (int i = 0; i < array.length; i++) {
            if (array[i].compareTo(max)>0) {
                max=array[i];
            }
        }

        return max;
    }

    public static void main(String[] args) {
//        double []  d={12.3,18.7,72.0,11.1,1.2,88.2,44.2};
        Integer []  d={12,18,72,11,1,88,44};
        Test test=new Test();
        Integer max=test.<Integer>Comp(d);
        System.out.println(max);

        System.out.println(String.valueOf(1) + String.valueOf(2));
    }
}






//class Test {
//
//    // 去除 st1 中含有的 st2 含有的所以字符
//    public static void func() {
//        String st1="welcome to bit";
//        String st2="come";
//        ArrayList<Character> arrayList=new ArrayList<>();
//        for (int i = 0; i < st1.length(); i++) {
//            if (!st2.contains(st1.charAt(i)+"")) {
//                arrayList.add(st1.charAt(i));
//            }
//        }
//
//        for (int i = 0; i < arrayList.size(); i++) {
//            System.out.print(arrayList.get(i));
//        }
//    }
//
//    public static void main(String[] args) {
//        func();
//    }
//}



// class Test10 {
//     public static void main(String[] args) {
//         int a = 10;
//         long b = 100L;
//         b = a; // int-->long，数据范围由小到大，隐式转换
//         System.out.println("b="+b);
//
//         a = (int)b; // long-->int, 数据范围由大到小，需要强转，否则编译失败
//         System.out.println("a="+a);
//
//         float f = 3.14F;
//         double d = 5.12;
//         d = f; // float-->double，数据范围由小到大，隐式转换
//         System.out.println("d="+d);
//
//         f = (float)d; // double-->float, 数据范围由大到小，需要强转，否则编译失败
//         System.out.println("f="+f);
//
////         a =  d; // 报错，类型不兼容
//         a = (int)d; // int没有double表示的数据范围大，需要强转，小数点之后全部丢弃
//         System.out.println("a="+a);
//
//         byte b1 = 100; // 100默认为int，没有超过byte范围，隐式转换
//         System.out.println("b1="+b1);
//
//         byte b2 = (byte)257; // 257默认为int，超过byte范围，需要显示转换，否则报错
//         System.out.println("b2"+b2);
//
//         boolean flag = true;
////         a = flag; // 编译失败：类型不兼容
////         flag = a; // 编译失败：类型不兼容
//     }
//}



//class  Test5 {
//
//    public static void main(String[] args) {
//
//        String str = "100";
//        System.out.println("转化前 str+1:"+(str+1));
//        int num = Integer.parseInt(str);
//        System.out.println("转化后 num+1:"+(num+1));
//
//    }
//}


class  Test2 {
    public static void main(String[] args) {
        int a = 0xffffffff;
        System.out.printf("%x\n", a >>> 1);
    }
}


//class  Test3 {
//    public static void main(String[] args) {
//        // 求两个整数的最大值
//        int a = 10;
//        int b = 20;
//        a > b ? a : b;
//
//    }
//}


//class Test4 {
//    public static void main(String[] args) {
//        // 求a和b的平均值
//        int a = 10;
//        int b = 20;
//        int c = a + ((b - a) >> 1);
//        System.out.println(c);
//    }
//}


